main(List<String> args) {
  // 1.明确声明
  String name = 'why';
  // 类型推导(var/ final/ const)
  // 类型推导虽然没有明确类型, 但实际有自己的类型, 第一次赋值的时候 类型已经确定
  var age = 20; 
  // age = 'abc';

  // final 声明常量 -- 不可修改
  final height = 1.88;

  // const 声明常量˜
  const address = "广州市";

  // final const区别
  // const 必须赋值 常量值(编译期间需要一个确定的值)
  // final 可以通过计算/ 函数获取一个值(运行期间来确定一个值)
  // const date1 = DateTime.now(); 错误
  final date2 = DateTime.now();

  const p = Person("why");
  const p2 = Person("why");
  print( identical(p, p2));
}


class Person{
  final String name;
  const Person(this.name);
}